//package com.ideaplugin.datamanager;
//
//import cn.hutool.core.text.StrFormatter;
//import cn.hutool.core.util.IdUtil;
//import com.google.common.collect.Sets;
//import com.mfhcd.dwh.service.mapper.StatisticalDataCodeMapper;
//import com.mfhcd.dwh.service.mapper.StatisticalItemsMapper;
//import com.mfhcd.dwh.service.model.StatisticalDataCode;
//import com.mfhcd.dwh.service.model.StatisticalItems;
//import org.apache.commons.lang3.StrUtil;
//import org.junit.jupiter.api.Test;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.jdbc.core.JdbcTemplate;
//import org.springframework.test.context.ActiveProfiles;
//
//import java.util.HashSet;
//import java.util.List;
//import java.util.Map;
//
///**
// * Created on 2022/6/8.
// *
// * @author zhaojb
// */
//@SpringBootTest
//@ActiveProfiles("local")
//public class CreateWideTableSql {
//
//    @Autowired
//    private JdbcTemplate jdbcTemplate;
//    @Autowired
//    private StatisticalItemsMapper statisticalItemsMapper;
//    @Autowired
//    private StatisticalDataCodeMapper dataCodeMapper;
//
//    @Test
//    public void test1() {
//        //statistics.terminal_base_wide_detail 终端基础宽表
//        //statistics.merchant_wide_detail 商户宽表
//
//        //String tableName = "statistics.pos_settle_statistics";
//        //String tableName = "statistics.terminal_base_wide_detail";
//        //String tableName = "statistics.merchant_wide_detail";
//        String tableName = "order.orders_netpay_refund_inf";
//
//        //数值
//        final HashSet<String> values = Sets.newHashSet(
//                "TRX_AMOUNT",
//                "REFUND_TRX_AMOUNT",
//                "REFUND_TRX_FEE",
//                "COUPONS_AMT",
//                "CUR_TYPE",
//                "REFUND_TRX_RATE"
//
//              );
//
//        final String[] split = tableName.split("\\.");
//        String dataBase = split[0];
//        String table = split[1];
//
//        String wideTableId = IdUtil.fastSimpleUUID();
//        //String wideTableId = "WIDE_TABLE_619";
//
//
//
//        final StatisticalItems statisticalItems = new StatisticalItems();
//        statisticalItems.setId(wideTableId);
//        statisticalItems.setStatisticalCode(wideTableId);
//        statisticalItems.setStatisticalName("互支退款信息表-"+tableName);
//        statisticalItems.setStatisticalStatus("01");
//        statisticalItems.setTableName(tableName);
//        statisticalItems.setType(1);
//        statisticalItemsMapper.insertSelective(statisticalItems);
//
//
//        String sqlColumn = "SELECT column_name,column_type,column_comment,column_key FROM `INFORMATION_SCHEMA`.`COLUMNS`\n" +
//                " WHERE `TABLE_SCHEMA` = '" + dataBase + "'  AND `TABLE_NAME` = '" + table +
//                "' ORDER BY `ORDINAL_POSITION` ASC\n" +
//                " ";
//        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sqlColumn);
//        int orderNo = 1;
//        for (Map<String, Object> map : maps) {
//            final StatisticalDataCode dataCode = new StatisticalDataCode();
//            dataCode.setId(IdUtil.fastSimpleUUID());
//            dataCode.setStatisticalCode(wideTableId);
//            final String dimensionCode = map.get("column_name") + "";
//            dataCode.setDimensionCode(dimensionCode);
//            if (values.contains(dimensionCode)) {
//                //1是维度，2是数值
//                dataCode.setDimensionType("2");
//            } else {
//                dataCode.setDimensionType("1");
//
//            }
//            final String column_comment = map.get("column_comment") + "";
//            if (StrUtil.isBlank(column_comment)) {
//                dataCode.setDimensionName(dimensionCode);
//            } else {
//                dataCode.setDimensionName(column_comment);
//            }
//
//
//            //dimensionType=1时，01:日期型 02:维度型
//
//            if ((map.get("column_type") + "").contains("date")) {
//                dataCode.setFieldType("01");
//            } else {
//                dataCode.setFieldType("02");
//                dataCode.setDimensionDateFormat("");
//            }
//
//            dataCode.setDimensionStatus("01");
//            dataCode.setDeleteFlag("0");
//            dataCode.setOrderNo(orderNo++);
//
//            dataCodeMapper.insertSelective(dataCode);
//        }
//
//    }
//
//    public static void main(String[] args) {
//
//        String a = "01-优质商户,02-小微商户,03-互支商户,04-普通商户,05-小宝商户,06-小宝电签,07-金大宝商户迁移,08-跨境商户,09-缴费商户,10-互支小微商户";
//
//        String tableName = "statistics.merchant_wide_detail";
//        String DIMENSION_CODE = "mer_in_type";
//
//        final String[] split = a.split(",");
//        for (String s : split) {
//            final String[] split1 = s.split("-");
//            String str = "INSERT INTO `common`.`STATISTICAL_DATA_CODE_VALUE`( `STATISTICAL_CODE`, `DIMENSION_CODE`, `PROPERTY_CODE`, `PROPERTY_NAME`, `PROPERTY_STATUS`) VALUES ('{}', '{}', '{}', '{}', '01');";
//
//            System.out.println(StrFormatter.format(str, tableName, DIMENSION_CODE, split1[0], split1[1]));
//        }
//
//
//
//
//
//    }
//
//}
